const express = require('express')
const app = new express();

// REST（Representational State Transfer，表述性状态转移） 是一种软件架构风格。
// REST提出了一组架构约束条件和原则，任何满足 REST 约束条件和原则的架构，都称为 RESTful 架构。

// 微服务之间需要相互通信以完成特定的业务处理，在典型的客户端-服务端设计模型中，客户端和服务端通通过消息请求-响应的方式交互协作，
// REST 就是这样一套微服务之间交互接口的设计约束和原则规范。

// 「表述性」 完整的描述是「资源表述性 网络通信中用URI描述资源」 在 HTTP 协议中用 URL 标识资源，也就是浏览器地址栏你看到的那一串网址。
// 访问资源不应该 带后缀,或者是标识符  减少了服务之间的耦合。客户端访问服务资源之前不需要知道资源在服务端的具体存储格式，


// 状态转移 状态转移就是客户端通过一系列请求动作，推动服务端的资源状态发生变化，资源的状态可以在「创建-修改-查看-删除」之间转移。

// REST 最常用的是基于 HTTP 的 RESTful 实现。
// 因为 HTTP 协议自带的动词 GET/POST/PUT/DELETE 可以作为推动状态转移的方法，
// 另外HTTP 的制定了规范的状态码。还有其他的一些 HTTP 特性，这些特性使得在HTTP 之上实现 REST 要简单得多



// request 封装了,获取参数的方法
app.get('/query',(request,response) => {
  // request.query 是一个对象,分装传来的参数
  // query拿不到restfull的数据
  console.log(request.query.name)
  response.send(request.query)
})
// restfull 风格的传参
app.get('/restfull/:id/:name',(request,response) => {
  // request.params 是一个对象,分装resultfull风格传来的参数
  console.log(request.params.name)
  response.send(request.params)
})
// 本地的ip 127.0.0.1 ==localhost
app.listen(90,(params) => {
  console.log('服务器启动了')
})